package com.cy.pj.notice.service.impl;

import com.cy.pj.common.exception.ServiceException;
import com.cy.pj.notice.dao.SysNoticeDao;
import com.cy.pj.notice.pojo.SysNotice;
import com.cy.pj.notice.service.SysNoticeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 公告业务的具体实现
 * 1）核心业务（调用数据方法操作数据）
 * 2）拓展业务（日志记录，权限控制，事务控制，缓存。。。）
 */
@Slf4j
@Service //@Component service就是一般组件，service表示的是一个业务层，但是在spring中是和Component一样的
public class SysNoticeServiceImpl implements SysNoticeService {
//    初始化日志对象（org.slf4j.*） @slf4j的注解后就不需要这个了
//    private static final Logger log = LoggerFactory.getLogger(SysNoticeServiceImpl.class);
    @Autowired
    private SysNoticeDao sysNoticeDao;

    /**
     * 构造方法可以顶替@Autowired，直接进行DI操作
     * @param sysNotice
     * @return
     */
//    public SysNoticeServiceImpl(SysNoticeDao sysNoticeDao){
//        this.sysNoticeDao=sysNoticeDao;
//    }
    @Override
    public List<SysNotice> findNotices(SysNotice sysNotice) {
        long t1 = System.currentTimeMillis();
//        System.out.println("method start"+t1); //无法控制输出打开还是关闭
        log.info("method start {} ",t1);//这里的{}表示占位符
        long t2 = System.currentTimeMillis();
        log.info("method end {}",t2);
        List<SysNotice> list = sysNoticeDao.selectNotices(sysNotice);
        return list;
    }

    @Override
    public int saveNotice(SysNotice sysNotice) {
        int rows = sysNoticeDao.insertNotice(sysNotice);
        return rows;
    }

    @Override
    public SysNotice findById(Long id) {
        SysNotice notice=sysNoticeDao.findById(id);
        return notice;
    }

    @Override
    public int updateNotice(SysNotice sysNotice) {
        return sysNoticeDao.updateNotice(sysNotice);
    }

    @Override
    public int deleteById(Long... id) {
        int rows= sysNoticeDao.deleteById(id);
        if (rows==0)
//            throw new RuntimeException("记录可能已经不存在了！");
            throw new ServiceException("记录可能已经不存在了！");
        return rows;

    }
}
